tg-me.com/pyproglib/6801
Last Update:
🔍 Профилирование — это способ найти узкие места в производительности кода.
Вы можете точно узнать, какие функции тормозят выполнение, где тратится больше всего времени, и какие вызовы стоит оптимизировать.
Python поставляется с двумя встроенными профайлерами:cProfile
— написан на C, работает быстрее и точнее,profile
— на Python, обычно медленнее.cProfile
для измерения производительности.
Как профилировать скрипт
python -m cProfile -o profile my_script.py
pstats
:python -m pstats profile <<< $'sort cumtime\nstats 1000' | less
sort cumtime
— сортируем функции по кумулятивному времени (время выполнения функции плюс все вызовы внутри неё)stats 1000
— показываем первые 1000 строк статистикиless
— удобный просмотр с прокруткой (нажмите q
для выхода)Полезные опции
-m
:python -m cProfile -o profile -m module_name [args]
python -m cProfile -o before.profile script.py
python -m cProfile -o after.profile script.py
Можно менять сортировку по другим метрикам:
time
— время выполнения только самой функцииcalls
— количество вызовов функции (может помочь найти «горячие» участки)Библиотека питониста #буст